package com.wsh.shop.users.service;

import java.util.Map;

import com.wsh.shop.common.pojo.ApiResponse;
import com.wsh.shop.common.util.PageInfoUtil;
import com.wsh.shop.users.pojo.AAdmins;
import com.wsh.shop.users.pojo.ACart;
import com.wsh.shop.users.pojo.AUsers;

/**
 * 用户模块的Service
 * 
 * @author wangshMac
 */
public interface IUsersDbService
{
	/*----- 管理员模块管理开始 -----*/
	/**
	 * 添加一条管理员
	 * 
	 * @param demoAdmins 管理员的对象
	 * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是Object
	 */
	ApiResponse<Object> saveOneAdminsService(AAdmins admins);

	/**
	 * 更新一条管理员
	 * 
	 * @param demoAdmins 管理员的对象
	 * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是Object
	 */
	ApiResponse<Object> updateOneAdminsService(AAdmins admins);

	/**
	 * 删除一条管理员
	 * 
	 * @param condMap 删除的条件
	 * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是Object
	 */
	ApiResponse<Object> deleteOneAdminsService(Map<String, Object> condMap);

	/**
	 * 查询多条管理员
	 * 
	 * @param pageInfoUtil 封装的分页对象;{{@link PageInfoUtil}
	 * @param condMap      搜索的条件
	 * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是AAdmins
	 */
	ApiResponse<AAdmins> findCondListAdminsService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);

	/**
	 * 查询一条管理员
	 * 
	 * @param condMap 搜索的条件
	 * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是AAdmins
	 */
	ApiResponse<AAdmins> findOneAdminsService(Map<String, Object> condMap);
	/*----- 管理员模块管理结束 -----*/
	
	/*----- 用户模块管理开始 -----*/
	/**
	 * 添加一条用户
	 * 
	 * @param demoUsers 用户的对象
	 * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是Object
	 */
	ApiResponse<Object> saveOneUsersService(AUsers users);

	/**
	 * 更新一条用户
	 * 
	 * @param demoUsers 用户的对象
	 * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是Object
	 */
	ApiResponse<Object> updateOneUsersService(AUsers users);

	/**
	 * 删除一条用户
	 * 
	 * @param condMap 删除的条件
	 * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是Object
	 */
	ApiResponse<Object> deleteOneUsersService(Map<String, Object> condMap);

	/**
	 * 查询多条用户
	 * 
	 * @param pageInfoUtil 封装的分页对象;{{@link PageInfoUtil}
	 * @param condMap      搜索的条件
	 * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是AUsers
	 */
	ApiResponse<AUsers> findCondListUsersService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);

	/**
	 * 查询一条用户
	 * 
	 * @param condMap 搜索的条件
	 * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是AUsers
	 */
	ApiResponse<AUsers> findOneUsersService(Map<String, Object> condMap);
	/*----- 用户模块管理结束 -----*/
	
	/*----- 购物车模块管理开始 -----*/
	/**
	 * 添加一条购物车
	 * 
	 * @param demoCart 购物车的对象
	 * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是Object
	 */
	ApiResponse<Object> saveOneCartService(ACart cart);

	/**
	 * 更新一条购物车
	 * 
	 * @param demoCart 购物车的对象
	 * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是Object
	 */
	ApiResponse<Object> updateOneCartService(ACart cart);

	/**
	 * 删除一条购物车
	 * 
	 * @param condMap 删除的条件
	 * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是Object
	 */
	ApiResponse<Object> deleteOneCartService(Map<String, Object> condMap);

	/**
	 * 查询多条购物车
	 * 
	 * @param pageInfoUtil 封装的分页对象;{{@link PageInfoUtil}
	 * @param condMap      搜索的条件
	 * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是ACart
	 */
	ApiResponse<ACart> findCondListCartService(PageInfoUtil pageInfoUtil, Map<String, Object> condMap);

	/**
	 * 查询一条购物车
	 * 
	 * @param condMap 搜索的条件
	 * @return 封装的ApiResponse;详情参见:{@link ApiResponse}},泛型是ACart
	 */
	ApiResponse<ACart> findOneCartService(Map<String, Object> condMap);
	/*----- 购物车模块管理结束 -----*/
}
